package com.jtny.nytb.equipment.vo.device;


import com.jtny.nytb.valid.param.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * @author 智慧能源中心 - zx
 * @package com.jtny.nytb.energymonitor.equipment.vo.device
 * @fileName EquipmentInfoVO.java
 * @createTime 2023年09月19日 22:21
 * @Copyright© 2023 jtny
 * 江投能源技术研究院 版权所有
 */

@ApiModel("设备VO对象")
@Data
public class EquipmentInfoVO implements Serializable {

    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id", required = true)
    @NotNull(message = "设备id不能为空", groups = Update.class)
    private Long id;


    /**
     * 设备编号
     */
    @ApiModelProperty(value = "设备编号", required = true)
    @NotBlank(message = "设备编号不能为空", groups = Update.class)
    private String code;


    /**
     * 设备名称
     */
    @ApiModelProperty(value = "设备名称", required = true)
    @NotBlank(message = "设备名称不能为空", groups = Update.class)
    private String name;


    /**
     * 设备类型id
     */
    @ApiModelProperty("设备类型id")
    private Long typeId;


    /**
     * 设备类型
     */
    @ApiModelProperty("设备类型")
    private String type;


    /**
     * 设备品牌
     */
    @ApiModelProperty("设备品牌")
    private String brand;


    /**
     * 设备型号
     */
    @ApiModelProperty("设备型号")
    private String model;


    /**
     * 设备区域
     */
    @ApiModelProperty("设备区域id")
    private Long areaId;


    /**
     * 设备区域名称
     */
    @ApiModelProperty("设备区域名称")
    private String areaName;


    /**
     * 设备对接标识
     */
    @ApiModelProperty("设备对接标识")
    private String dockIdentifier;


    /**
     * 设备描述
     */
    @ApiModelProperty("设备描述")
    private String description;


    /**
     * 设备编号规则
     */
    @ApiModelProperty("设备编号规则")
    private String equipmentCodeRule;

    /**
     * 规则名称
     */
    @ApiModelProperty("规则名称")
    private String ruleName;


    /**
     * 规则表格数据
     */
    @ApiModelProperty("规则表格数据")
    private String ruleTableData;


    /**
     * 电流
     */
    @ApiModelProperty("电流")
    private String electricity;

    /**
     * 电压
     */
    @ApiModelProperty("电压")
    private String voltage;

    /**
     * 所在楼层
     */
    @ApiModelProperty("所在楼层")
    private String floor;

    /**
     * 所在房间
     */
    @ApiModelProperty("所在房间")
    private String room;

    /**
     * 设备用途
     */
    @ApiModelProperty("设备用途")
    private String purpose;

    /**
     * 能源分类id
     */
    @ApiModelProperty("能源分类id")
    private Long energyClassificationId;

    /**
     * 能源分类
     */
    @ApiModelProperty("能源分类")
    private String energyClassification;

    /**
     * 设备状态，0表示正常，1表示禁用，9表示已删除
     */
    @ApiModelProperty("设备状态，0表示正常，1表示禁用，9表示已删除")
    private Integer status;

    /**
     * 规则id集合
     */
    @ApiModelProperty("规则id集合")
    private List<String> ruleIdList;


    @ApiModelProperty("设备id")
    private Long deviceId;

    @ApiModelProperty("设备型号id")
    private Long deviceModelId;

    @ApiModelProperty("设备编号")
    private String deviceCode;

    /**
     * 1代表true测点设备，0代表false设备
     */
    @ApiModelProperty("1代表true测点设备，0代表false设备")
    private Boolean isMeasuringPointDevice;

    /**
     * 是否支持远程控制
     */
    @ApiModelProperty("是否支持远程控制")
    private Boolean remoteControl;


    @ApiModelProperty("关联的网关标识")
    private String gatewayIdentifier;

    @ApiModelProperty("关联的标签信息")
    private String gatewayName;

}
